PROGRAM transitions;
GLOBAL
 ready=1;
 sizechange=0;
 sizecounter=7;
 anglechange=0;
 trans_id;
 hspeed=0;
 vspeed=0;
 setfps=24;

BEGIN
 load_fpg("trans.fpg");
 set_mode(640480);

 put_screen(0,1);

 LOOP

  set_fps(setfps,0);

  IF (key(_enter) AND ready==1)
   ready=0;
   delete_text(all_text);
   trans_id=trans();
  END

  screen_copy(0,0,2,0,0,640,480);

  write(0,290,10,5,"Size Change");
  write(0,290,20,5,"Angle Change");
  write(0,290,30,5,"Horizontal Speed");
  write(0,290,40,5,"Vertical Speed");
  write(0,290,50,5,"Frames Per Second");

  write_int(0,320,10,4,&sizechange);
  write_int(0,320,20,4,&anglechange);
  write_int(0,320,30,4,&hspeed);
  write_int(0,320,40,4,&vspeed);
  write_int(0,320,50,4,&setfps);

  write(0,350,10,3,"Up/Down");
  write(0,350,20,3,"Left/Right");
  write(0,350,30,3,"Q/A");
  write(0,350,40,3,"W/S");
  write(0,350,50,3,"E/D");

  IF (key(_up))
   sizechange=sizechange+1;
  END

  IF (key(_down))
   sizechange=sizechange-1;
  END

  IF (key(_right))
   anglechange=anglechange+10;
  END

  IF (key(_left))
   anglechange=anglechange-10;
  END

  IF (key(_q))
   hspeed=hspeed+1;
  END

  IF (key(_a))
   hspeed=hspeed-1;
  END

  IF (key(_w))
   vspeed=vspeed+1;
  END

  IF (key(_s))
   vspeed=vspeed-1;
  END

  IF (key(_e))
   setfps=setfps+1;
  END

  IF (key(_d))
   setfps=setfps-1;
  END

  IF (NOT FADING AND ready==0)
   signal(trans_id,s_kill);
   put_screen(0,1);
   sizecounter=7;
   fade_on();
   ready=1;
  END

  FRAME;
 END
END





///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////





PROCESS trans();
BEGIN
 resolution=10;
 graph=2;
 x=3200;
 y=2400;
 size=100;

 clear_screen();

 fade(200,200,200,1);

 LOOP

  sizecounter=sizecounter+1;

  IF (sizecounter>7)
   sizecounter=0;
   size=size+sizechange;
  END

  angle=angle+anglechange;
  x=x+hspeed;
  y=y-vspeed;

  FRAME;
 END
END